package collection.hash;

import lombok.Data;

/**
 * hashCode 冲突高频类定义
 */
@Data
public class HashCodede {

    public HashCodede(Integer num) {
        this.num = num;
    }

    private Integer num;

    /**
     * 使用位移来构建hash冲突
     *
     * @return
     */
    @Override
    public int hashCode() {
        return this.num >> 4;
    }

    /**
     * 判断是否相等使用 ,不使用引用地址, 使用num 这个成员变量
     *
     * @param obj
     * @return
     */
    @Override
    public boolean equals(Object obj) {
        if (!(obj instanceof HashCodede)) {
            return false;
        }
        return ((HashCodede) obj).getNum().equals(this.getNum());
    }


    /**
     * debug 会使用在展示的页面
     *
     * @return
     */
    @Override
    public String toString() {
        return "hashCode_test";
    }

}